package com.chen.seckill.service.bo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class ItemBO {

    private Integer id;

    // 使用聚合模型。嵌套。如果promoBO不为空，则表示其拥有还未结束的秒杀活动
    private PromoBO promoBO;

    // 商品名称
    @NotBlank(message = "商品名称不能为空")
    private String title;

    // 商品价格。数据类型为BigDecimal，确保浮点数准确性
    @NotNull(message = "商品价格不能为空")
    @Min(value = 0, message = "商品价格必须大于0")
    private BigDecimal price;

    // 商品库存
    @NotNull(message = "库存不能不填")
    private Integer stock;

    // 商品描述
    @NotBlank(message = "商品描述信息不能为空")
    private String description;

    // 商品的销量
    private Integer sales;

    // 商品配图
    @NotBlank(message = "商品图片信息不能为空")
    private String imgUrl;
}
